﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using FIFP.DashBoard.ViewModel;
using Ninject;
using FIFP.DashBoard.Views;
using EffectiveCapacityReport;

namespace FIFP.DashBoard.Helper
{
    public class ServiceLocator
    {
        private static readonly IKernel Kernel;

        static ServiceLocator()
        {
            if (Kernel == null)
            {
                Kernel = new StandardKernel(new Module());
            }
        }

        public static T Get<T>()
        {
            return Kernel.Get<T>();
        }

        public AppointmentVM AppointmentVM
        {
            get { return Kernel.Get<AppointmentVM>(); }
        }

        public MainPageVM MainPageVM
        {
            get { return Kernel.Get<MainPageVM>(); }
        }

        public ImportVM ImportVM
        {
            get { return Kernel.Get<ImportVM>(); }
        }

        public Import Import
        {
            get { return Kernel.Get<Import>(); }
        }

        public OverlapManagement OverlapManagement
        {
            get { return Kernel.Get<OverlapManagement>(); }
        }

        public Scanario Scanario
        {
            get { return Kernel.Get<Scanario>(); }
        }

        public OverlapVM OverlapVM
        {
            get { return Kernel.Get<OverlapVM>(); }
        }

        public OptManagement OptManagement
        {
            get { return Kernel.Get<OptManagement>(); }
        }

        public OptMngVM OptMngVM
        {
            get { return Kernel.Get<OptMngVM>(); }
        }

        public ShutdownManagement ShutdownManagement
        {
            get { return Kernel.Get<ShutdownManagement>(); }
        }

        public ShutdownMngVM ShutdownMngVM
        {
            get { return Kernel.Get<ShutdownMngVM>(); }
        }

        public FilterVM FilterVM
        {
            get { return Kernel.Get<FilterVM>(); }
        }

        public LSDManagement LSDManagement
        {
            get { return Kernel.Get<LSDManagement>(); }
        }
        public ChartViewModel ChartViewModel
        {
            get { return Kernel.Get<ChartViewModel>(); }
        }
        public LossByMonth LossByMonth
        {
            get { return Kernel.Get<LossByMonth>(); }
        }
        public OverlapVM_New OverlapVM_New
        {
            get { return Kernel.Get<OverlapVM_New>(); }
        }
        public OverlapManagement_New OverlapManagement_New
        {
            get { return Kernel.Get<OverlapManagement_New>(); }
        }
        public OptManagement_New OptManagement_New
        {
            get { return Kernel.Get<OptManagement_New>(); }
        }
    }
}
